package negocio;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;

@Entity
@DiscriminatorValue("PEDIDO_CLIENTE")
public class OrdenDePedidoCliente extends Pedido
{
	@ManyToOne
	@JoinColumn(name="ID_CLIENTE")
	private Cliente cliente;
	
	@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER, targetEntity=OrdenDeCotizacionCliente.class)
	@org.hibernate.annotations.Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
	@JoinColumn(name="ID_ORDEN_PEDIDO")
	private Set<OrdenDeCotizacionCliente> cotizaciones;

	public OrdenDePedidoCliente(){
		this.cotizaciones = new HashSet<OrdenDeCotizacionCliente>();
	}
	
	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	public Set<OrdenDeCotizacionCliente> getCotizaciones() {
		return cotizaciones;
	}

	public void setCotizaciones(Set<OrdenDeCotizacionCliente> cotizaciones) {
		this.cotizaciones = cotizaciones;
	}
	
	public void agregarCotizacion(OrdenDeCotizacionCliente cotizacion ){
		if (!cotizaciones.contains(cotizacion))
			cotizaciones.add(cotizacion);
	}
}
